Flow classification is a common stage of many network functions in which a flow identifier (e.g., one or more packet header fields) is used to index a flow table to select an action to be performed on the flow. Traditional high-performance network routers typically use a ternary content-addressable memory (TCAM) to implement flow classification. TCAMs typically provide good performance compared to traditional RAM (e.g., DRAM or SRAM) at the expense of power efficiency and/or size.
Increasingly, network functions traditionally performed by dedicated hardware devices are being performed using general-purpose computers, such as server computers that include one or more Intel® Xeon® processors. For example, network functions such as routing, packet filtering, caching, and other network functions may be executed by a virtualization platform, which may include any combination of network function virtualization (NFV), software-defined networking (SDN), and/or software-defined infrastructure (SDI).